/*
 * Copyright © 2018 iFund. All rights reserved.
 */

package com.climber.android.commonres.widget.loading

import android.content.Context
import android.text.TextUtils
import android.util.AttributeSet
import android.view.View
import android.widget.ImageView
import android.widget.LinearLayout
import android.widget.TextView
import com.climber.android.commonres.R
import com.climber.android.commonres.helper.onClick

/**
 * ━━━━━━神兽保佑━━━━━━
 * 　　　┏┓　　　┏┓
 * 　　┏┛┻━━━┛┻┓
 * 　　┃　　　　　　　┃
 * 　　┃　　　━　　　┃
 * 　　┃　┳┛　┗┳　┃
 * 　　┃　　　　　　　┃
 * 　　┃　　　┻　　　┃
 * 　　┃　　　　　　　┃
 * 　　┗━┓　　　┏━┛
 * 　　　　┃　　　┃
 * 　　　　┃　　　┃
 * 　　　　┃　　　┗━━━┓
 * 　　　　┃　　　　　　　┣┓
 * 　　　　┃　　　　　　　┏┛
 * 　　　　┗┓┓┏━┳┓┏┛
 * 　　　　　┃┫┫　┃┫┫
 * 　　　　　┗┻┛　┗┻┛
 * ━━━━━━代码无bug━━━━━━
 * @author Mikes
 * *
 * @date 2017-8-31
 */

class CommonBigEmptyView : LinearLayout {
    private var tv_empty_title: TextView? = null
    private var iv_empty_icon: ImageView? = null
    private var v_empty_button: TextView? = null

    constructor(context: Context) : super(context) {
        init()
    }

    constructor(context: Context, attrs: AttributeSet) : super(context, attrs) {
        init()
    }

    constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(context, attrs, defStyleAttr) {
        init()
    }

    private fun init() {
        View.inflate(context, R.layout.com_view_big_empty, this)

        tv_empty_title = findViewById<View>(R.id.tv_empty_title) as TextView
        iv_empty_icon = findViewById<View>(R.id.iv_empty_icon) as ImageView
        v_empty_button = findViewById<View>(R.id.v_empty_button) as TextView

        updateData()
    }

    private fun updateData() {
        configure("")
    }

    fun setEmptyListener(listener: (() -> Unit)? = null){
        v_empty_button?.onClick {
            listener?.invoke()
        }
    }

    fun configure(emptyContent: String?=null, emptyIcon: Int? = null, btnLabel: String? = null, listener: (() -> Unit)? = null) {
        if(emptyIcon != null){
            iv_empty_icon?.setImageResource(emptyIcon)
        }

        if(!TextUtils.isEmpty(emptyContent)){
            tv_empty_title?.text = emptyContent
        }

        if (!TextUtils.isEmpty(btnLabel)) {
            v_empty_button?.visibility = View.VISIBLE
            v_empty_button?.text = btnLabel
        } else{
            v_empty_button?.visibility = View.GONE
        }
    }
}